home *** CD-ROM | disk | FTP | other *** search
- 0 REM" PONZO*82*WATERLOO
- 1 [143]"
- 50 POKE53281,15:POKE53280,12:PRINT"[144]"
- 100 PRINT"[147] C64 TUTOR-4
- 101 [153]"ORTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN^"
- 102 [153]"(null) INSIDE THE C64 WAIT (null)":MS$[178]" WELCOME! "
- 103 [153]"/TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANEXPSTOP"
- 1000 [141]60000:[141]63100:[141]63000
- 1005 [153]"LOADC64 MEMORY"
- 1010 [153]"MEMORY RUNS FROM 0 TO 65535 (DECIMAL)"
- 1020 [153]"OR 0000 TO FFFF (HEXADECIMAL)"
- 1030 [153]"(WRITTEN $0000 $FFFF)"
- 1040 [153]"SOME IS FOR YOU..SOME FOR ME."
- 1050 [153]"(ABOUT HALF/HALF)"
- 1060 [153]"LET ME SHOW YOU..."
- 1070 [141]63000
- 1080 [153]"LOADBOTTOM HALF OF MEMORY"
- 1090 [153]"DECIMAL HEX"
- 1100 [153]"32768=$8000-SPC(SPC(SPC(SPC(SPC(SPC(_TOP OF BASIC MEMORY"
- 1110 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$"
- 1120 [153]" - - - +"
- 1125 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)"
- 1130 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)BASIC"
- 1140 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)PROGRAMS"
- 1150 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_(null)IN HERE"
- 1155 [153]" 2048=$0800-SPC(SPC(SPC(SPC(SPC(SPC(_BASIC MEMORY STARTS"
- 1160 [153]" 2047=$07FF-SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$SCREEN MEMORY"
- 1170 [153]" 1024=$0400-SPC(SPC(SPC(SPC(SPC(SPC(_(null)"
- 1190 [153]" 1023=$03FF SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$"
- 1200 [153]" SPC(SPC(SPC(SPC(SPC(SPC( MY WORKSPACE"
- 1210 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)"
- 1220 [153]" SPC(SPC(SPC(SPC(SPC(SPC( "
- 1230 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_POINTERS
- 1240 PRINT" [166][166][166][166][166][166]_TO MAGIC
- 1250 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_MEMORY LOC'NS"
- 1260 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_FLAGS,ETC."
- 1270 [153]" SPC(SPC(SPC(SPC(SPC(SPC("
- 1280 [153]" 0=$0000-SPC(SPC(SPC(SPC(SPC(SPC(_(null)BOTTOM"
- 1290 [141]63000
- 1300 [153]"LOADI STORE BYTES READ FROM A DATASETTE"
- 1310 [153]"IN 'BUFFERS' UNTIL I GET ENOUGH"
- 1320 [153]"TO STUFF INTO 'BASIC MEMORY'"
- 1330 [153]"(IF THEY'RE BASIC PROGRAMS)."
- 1340 [153]"THESE ARE (USUALLY) NICE PLACES TO PUT"
- 1350 [153]"MACHINE LANGUAGE PROGRAMS."
- 1360 [153]"WHEN YOU DEFINE VARIABLES X,Y,A(I),ETC."
- 1370 [153]"I STORE THEM AFTER YOUR BASIC PROGRAM."
- 1380 [153]"WHEN YOU DEFINE STRINGS A$,C$(I),ETC."
- 1390 [153]"I STORE THEM AT THE 'TOP'."
- 1400 [153]"TO KEEP TRACK OF WHERE I PUT THINGS"
- 1410 [153]"I STORE POINTERS IN LOW MEMORY:"
- 1420 [141]63000
- 1430 [153]"LOADTHE ADDRESS OF"[163]25)" IS STORED AT"
- 1440 [153]"FREFREFREFREFREFREFREFREFREFREFREFREFREFREFRE"[163]25)"FREFREFREFREFREFREFREFREFREFREFREFREFREFRE"
- 1450 [153]"START OF BASIC"[163]25)"43/44 =$2B/$2C"
- 1460 [153]"^(USUALLY 2049=$0801)"
- 1470 [153]"END OF PROGRAM"[163]25)"45/46 =$2D/$2E"
- 1480 [153]"^(VARIES WITH PROGRAM)"
- 1485 [153]" (AND GIVES START OF )"
- 1486 [153]" (VARIABLES TOO)"
- 1487 [153]"BOTTOM OF STRINGS"[163]25)"51/52 =$33/$34"
- 1488 [153]"^(VARIES WITH PROGRAM)"
- 1489 [153]" ($7FFF & DOWN_STRINGS)"
- 1490 [153]"TOP OF BASIC RAM"[163]25)"55/56 =$37/$38"
- 1500 [153]"^(USUALLY 32768=$8000)"
- 1501 [153]"NOTE: THE 'TOP OF BASIC RAM' MAY BE AT"
- 1502 [153]"$A000..IF NO 'CARTRIDGE' IS INVOLVED."
- 1505 [153]"WE'LL COME BACK TO THESE POINTERS LATER!"
- 1510 [141]63000
- 1520 [153]"LOADTOP HALF OF MEMORY"
- 1530 [153]"DECIMAL HEX"
- 1540 [153]"65535=$FFFF-SPC(SPC(SPC(SPC(SPC(SPC(_TOP OF MEMORY"
- 1550 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$"
- 1560 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)RAM &"
- 1565 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)ROM"
- 1570 [153]"49152=$C000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)"
- 1575 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$"
- 1576 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)BASIC"
- 1577 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)INTERPRETER"
- 1578 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)"
- 1580 [153]"40960=$A000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)"
- 1590 [153]" SPC(SPC(SPC(SPC(SPC(SPC(_RIGHT$_ MAY BE"
- 1595 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)USED BY"
- 1596 [153]" SPC(SPC(SPC(SPC(SPC(SPC( (null)CARTRIDGE"
- 1600 [153]"32768=$8000 SPC(SPC(SPC(SPC(SPC(SPC(_(null)"
- 1660 [141]63000
- 1750 [153]"LOAD HOW BASIC PROGRAMS ARE STORED"
- 1760 [153]"RECALL THAT BASIC PROGRAMS (NORMALLY)"
- 1770 [153]"GO INTO MEMORY STARTING AT $0801(HEX)."
- 1780 [153]"LET'S LOOK AT THE BYTES THERE FOR THE"
- 1790 [153]"SIMPLE PROGRAM:"
- 1800 [153]"10 FORI=1TO10 "
- 1810 [153]"20 PRINT"[199](34)"*"[199](34)":NEXT"
- 1820 [153]"WE'LL SYS2048WAIT TO GET TO THE MLM"
- 1830 [153]"THEN WE'LL .M 0800-0820WAIT TO DISPLAY"
- 1840 [153]"THE MEMORY HOLDING THIS SIMPLE PROGRAM."
- 1845 [141]63000:[153]"LOADFOR:"
- 1846 [153]"10 FORI=1TO10 "
- 1847 [153]"20 PRINT"[199](34)"*"[199](34)":NEXT"
- 1848 [153]"WE'LL GET:"
- 1850 [153]" .: 0800 00 0D 08 0A 00 81 49 B2
- 1860 PRINT" .: 0808 31 A4 31 30 00 18 08 14
- 1870 [153]" .: 0810 00 99 22 2A 22 3A 82 00
- 1880 PRINT" .: 0818 00 00 AA AA AA AA AA AA
- 1890 SD$[178]"":CL$[178]"WAIT WAIT"
- 1891 SR$[178]""
- 1900 SD[178]8:SR[178]10:CC$[178]"00":[141]55000
- 1910 [153]SD$"I ALWAYS HAVE 00WAIT HERE."
- 1920 [153]"THAT'S WHY 'SYS2048' WORKS!"
- 1930 [141]62000
- 1931 [141]55010
- 1950 SD[178]8:SR[178]13:CC$[178]"0D 08":[141]55000
- 1960 [153]SD$"THIS IS THE ADDRESS OF THE NEXTWAIT"
- 1970 [153]"BASIC INSTRUCTION."
- 1980 [141]62000
- 1981 [141]55010
- 1990 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000
- 2000 [153]SD$"THIS IS THE LINE NUMBER 10WAIT"
- 2010 [153]" IN HEX."
- 2020 [141]62000
- 2021 [141]55010
- 2030 SD[178]8:SR[178]25:CC$[178]"81":[141]55000
- 2040 [153]SD$"THIS IS THE 'TOKEN' FOR";
- 2050 [153]" FORWAIT"
- 2060 [141]62000
- 2061 [141]55010
- 2066 [141]55010
- 2070 SD[178]8:SR[178]28:CC$[178]"49":[141]55000
- 2080 [153]SD$"THIS IS THE ASCII CODE FOR";
- 2090 [153]" IWAIT"
- 2100 [141]62000
- 2101 [141]55010
- 2110 SD[178]8:SR[178]31:CC$[178]"B2":[141]55000
- 2120 [153]SD$"THIS IS THE ASCII CODE FOR";
- 2130 [153]" =WAIT"
- 2140 [141]62000
- 2141 [141]55010
- 2150 SD[178]9:SR[178]10:CC$[178]"31":[141]55000
- 2160 [153]SD$"THIS IS THE ASCII CODE FOR";
- 2170 [153]" 1WAIT"
- 2180 [141]62000
- 2181 [141]55010
- 2190 SD[178]9:SR[178]13:CC$[178]"A4":[141]55000
- 2200 [153]SD$"THIS IS THE 'TOKEN' FOR";
- 2210 [153]" TOWAIT"
- 2220 [141]62000
- 2221 [141]55010
- 2230 SD[178]9:SR[178]16:CC$[178]"31":[141]55000
- 2240 [153]SD$"THIS IS THE ASCII CODE FOR";
- 2250 [153]" 1WAIT(AGAIN)"
- 2260 [141]62000
- 2261 [141]55010
- 2270 SD[178]9:SR[178]19:CC$[178]"30":[141]55000
- 2280 [153]SD$"THIS IS THE ASCII CODE FOR";
- 2290 [153]" 0WAIT"
- 2300 [141]62000
- 2301 [141]55010
- 2310 SD[178]9:SR[178]22:CC$[178]"00":[141]55000
- 2320 [153]SD$"THIS IS THE BYTE MEANING"
- 2330 [153]"END OF STATEMENTWAIT."
- 2340 [141]62000
- 2341 [141]55010
- 2350 SD[178]9:SR[178]25:CC$[178]"18 08":[141]55000
- 2360 [153]SD$"THESE POINT TO ADDRESS OF"
- 2370 [153]"THE NEXTWAIT STATEMENT"
- 2380 [141]62000
- 2391 [141]55010
- 2410 [153]SD$"THIS 2ND STATEMENT BEGINS"
- 2420 [153]"AT $080D AS NOTED EARLIER."
- 2430 SD[178]8:SR[178]13:CC$[178]"0D 08":[141]55000
- 2435 [129]I[178]1[164]50:[130]
- 2440 [141]55010
- 2450 [161]A$:[139]A$[178]""[167]2430
- 2460 [153]SD$CL$:[153]CL$:[153]CL$
- 2465 SD[178]9:SR[178]25:CC$[178]"18 08":[141]55000
- 2470 [153]SD$"THE ADDRESS OF THE 'NEXT' STATEMENT"
- 2480 [153]"IS GIVEN LO-BYTEWAIT THEN HI-BYTEWAIT."
- 2490 [153]"IT'S (LO-BYTE)+256*(HI-BYTE)."
- 2500 [141]62000
- 2501 [141]55010
- 2510 [153]SD$"..SAME FOR THE 'STATEMENT NUMBER'."
- 2520 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000
- 2525 [129]I[178]1[164]50:[130]
- 2530 SD[178]8:SR[178]19:CC$[178]"0A 00":[141]55000
- 2535 [161]A$:[139]A$[178]""[167]2520
- 2540 [141]62000
- 2541 [141]55010
- 2550 [153]SD$"THEN COMES 2 BYTES FOR THE "
- 2560 [153]"STATEMENT NUMBER 20WAIT"
- 2570 [153]"(1ST BYTE)+256*(2ND BYTE)"
- 2575 SD[178]9:SR[178]31:CC$[178]"14":[141]55000
- 2576 SD[178]10:SR[178]10:CC$[178]"00":[141]55000
- 2580 [141]62000
- 2581 [153][200](SD$,9)[163]31)"14"
- 2582 [153][200](SD$,10)[163]10)"00"
- 2590 SD[178]10:SR[178]13:CC$[178]"99":[141]55000
- 2600 [153]SD$"THIS IS THE 'TOKEN' FOR PRINTWAIT"
- 2610 [141]62000
- 2611 [141]55010
- 2620 SD[178]10:SR[178]16:CC$[178]"22":[141]55000
- 2630 [153]SD$"THIS IS THE ASCII CODE FOR "[199](34)
- 2640 [141]62000
- 2641 [141]55010
- 2650 SD[178]10:SR[178]19:CC$[178]"2A":[141]55000
- 2660 [153]SD$"THIS IS THE ASCII CODE FOR *WAIT"
- 2670 [141]62000
- 2671 [141]55010
- 2680 SD[178]10:SR[178]22:CC$[178]"22":[141]55000
- 2690 [153]SD$"..THE ASCII CODE FOR "[199](34):[153]"...AGAIN"
- 2700 [141]62000
- 2701 [141]55010
- 2710 SD[178]10:SR[178]25:CC$[178]"3A":[141]55000
- 2720 [153]SD$"THE ASCII CODE FOR :WAIT"
- 2730 [141]62000
- 2731 [141]55010
- 2740 SD[178]10:SR[178]28:CC$[178]"82":[141]55000
- 2750 [153]SD$"THE TOKEN FOR NEXTWAIT"
- 2760 [141]62000
- 2761 [141]55010
- 2770 SD[178]10:SR[178]31:CC$[178]"00":[141]55000
- 2780 SD[178]11:SR[178]10:CC$[178]"00 00":[141]55000
- 2790 [153]SD$"THE 3 ZERO BYTES SAY"
- 2800 [153]"END OF THE PROGRAMWAIT!"
- 2810 [141]62000
- 2811 [153][200](SD$,10)[163]31)"00"
- 2812 [153][200](SD$,11)[163]10)"00 00"
- 2820 [141]62000
- 2830 SD[178]10:SR[178]31:CC$[178]"00":[141]55000
- 2840 [153]SD$"THIS ONE IS THE NORMAL"
- 2850 [153]"END OF STATEMENTWAIT"
- 2860 [141]62000
- 2861 [141]55010
- 2862 SD[178]11:SR[178]10:CC$[178]"00 00":[141]55000
- 2870 [153]SD$"THESE GIVE 00 00WAIT AS A LINK"
- 2880 [153]"TO THE 'NEXT' STATEMENT."
- 2890 [153]"MEANING NO NEXT STATEMENTWAIT."
- 2900 [141]62000
- 2901 [141]55010
- 2902 [153][200](SD$,11)[163]16)"AA AA AA AA AA AAWAIT"
- 2910 [153]SD$"THE BUNCH OF AAWAITS IS JUST......."
- 2920 [153]"GARBAGE!"
- 2940 [141]62000:[153]"LOAD": MS$[178]"AA AA AA":[141]63100
- 2950 [153]"LOADIF YOU REALLYCMDCMDCMDCMDCMDCMDFREFREFREFREFREFREON WANTED TO YOU"
- 2960 [153]"COULD ENTER THE MLM WITH SYS2048"
- 2970 [153]"AND WRITE (OR CHANGE) A BASIC PROGRAM"
- 2980 [153]"BY SIMPLY ENTERING THE APPROPRIATE"
- 2990 [153]"BYTES (IN HEX!) INTO THE RIGHT LOC'NS!"
- 3000 [153]"..BUT LEARN YOUR ASCII CODE.."
- 3010 [153]"AND THE SINGLE-BYTE 'TOKENS' I USE"
- 3020 [153]"TO IDENTIFY THE VARIOUS BASIC COMMANDS"
- 3030 [153]"LIKE PRINTWAIT,FORWAIT,NEXTWAIT,RUNWAIT,LISTWAIT,ETC."
- 3040 [153]"(TRY IT AFTERCMDCMDCMDCMDCMDFREFREFREFREFREON YOU END TUTOR)"
- 3050 [141]63000:[141]40000:[141]5000
- 4000 [153]"LOADNOW... **********"
- 4001 [153]" * A TEST *
- 4002 PRINT" **********"
- 4003 FORI=1TO500:NEXT:MS$=" A TEST?![146]":GOSUB63100
- 4010 PRINT"I'LL ASK YOU QUESTIONS ABOUT MYSELF.":MS$="GOOD!GOOD!"
- 4020 PRINT"IF THE ANSWER IS AN 'ADDRESS' OR"
- 4030 PRINT"MEMORY LOCATION GIVE IT TO ME AS A"
- 4040 PRINT"4 DIGIT HEX NUMBER WITH $"
- 4050 PRINT"(LIKE $1234)"
- 4060 PRINT"...UNLESS OTHERWISE SPECIFIED!"
- 4070 GOSUB50000:GOSUB63000
- 4080 FORN=1TOQQ:PRINT"[147]"Q$(N)
- 4085 GETA$:IFA$<>""THEN4085
- 4090 INPUT" [214][157][157][157]";A$:PRINT""
- 4100 IFA$=A$(N)THENGOSUB63100:PRINT"":GOTO4120
- 4110 PRINTAN$A$(N)
- 4120 PRINT""M$(N):GOSUB63000:NEXT
- 4130 PRINT"[147]WANT TO TAKE THE **TEST** AGAIN?"
- 4140 INPUT" Y[157][157][157]";A$
- 4150 IFA$="Y"THENPRINT"[147]":GOTO4080
- 4160 GOTO39999
- 5000 PRINT"[147]AFTER RUNNING A PROGRAM LIKE:":QT$=CHR$(34):GOSUB63900
- 5010 PRINT" 10 AB$=STR$(7)"
- 5020 PRINT"LET'S SEE WHERE I PUT THE STRING '7'."
- 5030 PRINT"WE'LL TYPE SYS2048[146] THEN"
- 5040 PRINT".M 0800-0830[146] TO SEE THE PROGRAM"
- 5050 PRINT".M 7FF8-7FFF[146] TO SEE THE STRING."
- 5060 GOSUB63000:PRINT"[147]";
- 6001 PRINT".: 0800 00 0E 08 0A 00 41 42 24
- 6002 [153]".: 0808 B2 C4 28 37 29 00 00 00
- 6003 PRINT".: 0810 41 C2 02 FC 7F 00 00 AA
- 6004 [153]".: 0818 AA AA AA AA AA AA AA AA
- 6005 PRINT".: 7FF8 AA AA AA AA 20 37 12 04
- 6100 SD[178]3:SR[178]24:CC$[178]"00 00 00":[141]55000
- 6110 [153]SD$"THESE ARE THE 3 '00'-BYTES THAT END"
- 6120 [153]"THE PROGRAM."
- 6130 [141]62000:[141]55010
- 6140 SD[178]4:SR[178]9:CC$[178]"41 C2":[141]55000
- 6150 [153]SD$"41WAIT='A' IN ASCII"
- 6160 [153]"42WAIT='B'..BUT $80 IS ADDED"
- 6170 [153]"INDICATING A STRINGWAIT, GIVING C2WAIT"
- 6180 [141]62000:[141]55010
- 6190 SD[178]4:SR[178]15:CC$[178]"02":[141]55000
- 6200 [153]SD$"THE STRING AB$ IS 02WAIT BYTES LONG."
- 6210 [141]62000:[141]55010
- 6220 SD[178]4:SR[178]18:CC$[178]"FC 7F":[141]55000
- 6230 [153]SD$"AND IT'S LOCATED AT $7FFCWAIT."
- 6240 [141]62000:[141]55010
- 6250 SD[178]8:SR[178]21:CC$[178]"20 37":[141]55000
- 6260 [153]SD$"HERE, AT $7FFC, IS AB$."
- 6270 [153]"AB$ IS:20WAIT='SPACE'+37WAIT='7'"
- 6280 [141]62000:[141]55010
- 6290 SD[178]8:SR[178]27:CC$[178]"12 08":[141]55000
- 6300 [153]SD$"AND WHERE DOES IT SAY IT'S"
- 6310 [153]"2 BYTES LONG?"
- 6320 [153]"..AT MEMORY LOC'N $0812WAIT!"
- 6330 SD[178]4:SR[178]15:CC$[178]"02":[141]55000
- 6340 [141]55010:[161]A$:[139]A$[178]""[167]6330
- 6350 [153]"LOADIF, HOWEVER, YOUR PROGRAM WAS:"
- 6360 [153]" 10 AB$="QT$"7"QT$
- 6370 [153]"WHERE DO YOU THINK THE POINTER WILL"
- 6380 [153]"POINT TO?"
- 6390 [153]"NOTWAIT TO $7FFC, BUT TO THE LOCATION"
- 6400 [153]"IN THE BASIC PROGRAM ITSELF WHERE"
- 6410 [153]"'7' IS LOCATED."
- 6415 [141]62000
- 6420 [153]SD$"THAT IS, TO $080AWAIT"
- 6425 [153]"..AND IT WILL BE 1 BYTE LONG!"
- 6430 SD[178]3:SR[178]9:CC$[178]"7":[141]55000
- 6440 [141]55010:[161]A$:[139]A$[178]""[167]6430
- 6450 [142]
- 39999 [153]"LOAD":MS$[178]"AU REVOIR!WAIT":[141]63100:[153]"":[128]
- 40000 [153]"LOADLET'S LOOK AT SOME POINTERS":[141]63900
- 40005 [153]"BEFORE WRITING ANYCMDCMDCMDFREFREFREON PROGRAM"
- 40006 [153]"(AFTER FIRST TURNING ON THE C64)"
- 40010 [153]"WE'LL SYS2048WAIT TO GET INTO THE MLM.."
- 40020 [153]"THEN .M 002B 0033WAIT..."
- 40030 [153]"B*
- 40031 PRINT" PC SR AC XR YR SP"
- 40032 PRINT".; 0801 32 04 5E 00 F8"
- 40033 PRINT".M 002B 0033"
- 40034 PRINT".: 002B 01 08 03 08 03 08 03 08"
- 40035 PRINT".: 0033 00 80 00 00 00 80 00 FF"
- 40036 PRINT".X _ =EXIT...REMEMBER?"
- 40040 SD=14:SR=09:CC$="01 08":GOSUB55000
- 40050 PRINTSD$"THIS SAYS BASIC PROGRAMS START"
- 40060 PRINT"AT $0801..READ IT BACKWARDS!"
- 40070 GOSUB62000:GOSUB55010
- 40080 SD=14:SR=15:CC$="03 08":GOSUB55000
- 40090 PRINTSD$"THIS SAYS THE NIL-PROGRAM ENDS"
- 40100 PRINT"AT $0803..AFTER 3 '00' BYTES!"
- 40110 GOSUB62000:GOSUB55010
- 40120 SD=14:SR=21:CC$="03 08":GOSUB55000
- 40130 PRINTSD$"THIS SAYS ARRAYS START"
- 40140 PRINT"AT $0803 TOO..NO ARRAYS YET!"
- 40150 GOSUB62000:GOSUB55010
- 40160 SD=14:SR=27:CC$="03 08":GOSUB55000
- 40170 PRINTSD$"THIS SAYS ARRAYS END"
- 40180 PRINT"AT $0803 TOO..NO ARRAYS YET[146]!"
- 40190 GOSUB62000:GOSUB55010
- 40200 SD=15:SR=09:CC$="00 08":GOSUB55000
- 40210 PRINTSD$"THIS SAYS STRINGS GO DOWN"
- 40220 PRINT"TO $8000..NO STRINGS YET[146]!"
- 40230 GOSUB62000:GOSUB55010
- 40240 SD=15:SR=15:CC$="00 00":GOSUB55000
- 40250 PRINTSD$"THIS POINTER (TO CURRENT STRING)"
- 40260 PRINT"WE'LL IGNORE."
- 40270 GOSUB62000:GOSUB55010
- 40280 SD=15:SR=21:CC$="00 80":GOSUB55000
- 40290 PRINTSD$"THIS SAYS 'TOP OF BASIC RAM' IS"
- 40300 PRINT"AT $8000..OF COURSE."
- 40310 GOSUB62000:GOSUB55010
- 40320 SD=15:SR=27:CC$="14 FF":GOSUB55000
- 40330 PRINTSD$"THIS IS THE CURRENT BASIC "
- 40340 PRINT"LINE NUMBER..IGNORE!"
- 40350 GOSUB62000:GOSUB55010
- 40360 PRINT"[147]OK..NOW WE'LL WRITE A SHORT PROGRAM[146]:":FORI=1TO500:NEXT
- 40370 PRINT"10 FORI=1TO10:A(I)=I*I:A$(I)=STR$(I)"
- 40380 PRINT"20 PRINT"CHR$(34)"+"CHR$(34)":NEXT "
- 40390 PRINT"THEN, BEFORE[157][157][157][157][157][157][184][184][184][184][184][184][145] RUNNING IT"
- 40400 PRINT"WE'LL SYS2048[146]:"
- 40410 PRINT"B*
- 40420 [153]" PC SR AC XR YR SP"
- 40430 [153]".; 0801 32 04 5E 00 F8"
- 40440 [153]".M 002B 0033"
- 40450 [153]".: 002B 01 08 2E 08 2E 08 2E 08"
- 40460 [153]".: 0033 00 80 DA 7F 00 80 14 FF"
- 40470 [153]".X"
- 40480 SD[178]14:SR[178]09:CC$[178]"01 08":[141]55000
- 40490 [153]SD$"THE BASIC PROGRAM STARTS"
- 40500 [153]"AT $0801..OF COURSE!"
- 40510 [141]62000:[141]55010
- 40520 SD[178]14:SR[178]15:CC$[178]"2E 08":[141]55000
- 40530 [153]SD$"THE BASIC PROGRAM ENDS"
- 40540 [153]"AT $082E..AFTER THE 3 '00' BYTES."
- 40550 [141]62000:[141]55010
- 40560 SD[178]14:SR[178]21:CC$[178]"2E 08 2E 08":[141]55000
- 40570 [153]SD$"NO VARIABLES, NO ARRAYS OR"
- 40580 [153]"STRINGS CREATED YET."
- 40590 [141]62000:[141]55010
- 40600 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55000
- 40610 [153]SD$"NOTHING WORTH NOTING (!)"
- 40620 [153]"HAS HAPPENED YET."
- 40630 [141]62000:[141]55010
- 40640 [153]SD$"NOWWAIT WE'LL RUNCMDCMDCMDFREFREFREON THE PROGRAM:"
- 40650 [153]"WATCH...."
- 40655 [153]" "
- 40656 [153]"10 FORI=1TO10:A(I)=I*I:A$(I)=STR$(I)"
- 40657 [153]"20 PRINT"[199](34)"+"[199](34)":NEXT"
- 40658 [129]I[178]1[164]5:[153]" ":[130]
- 40660 [141]62000:[141]55010
- 40670 SD[178]14:SR[178]09:CC$[178]"01 08":[141]55000
- 40680 [153]SD$"START OF BASIC WON'T CHANGE"
- 40690 [141]62000:[141]55010
- 40700 SD[178]14:SR[178]15:CC$[178]"2E 08":[141]55000
- 40710 [153]SD$"END OF BASIC WON'T CHANGE"
- 40720 [153]"(IT'S ALSO 'START OF VARIABLES)"
- 40730 [141]62000:[141]55010
- 40740 SD[178]14:SR[178]21:CC$[178]"35 08 9B 08":[141]55000
- 40750 [153]SD$"ARRAY A(I) IS STORED FROM"
- 40760 [153]"$0835 AND 'UP'."
- 40770 [141]62000
- 40771 [153]SD$"IT ACTUALLY ENDS AT $0872"
- 40772 [153]"AND INFO ON WHERE A$(I) IS STORED"
- 40773 [153]"GOES INTO $0873-$089B."
- 40774 [141]62000:[141]55010
- 40780 SD[178]15:SR[178]09:CC$[178]"D7 7F":[141]55000
- 40790 [153]SD$"ARRAY A$(I) IS STORED FROM"
- 40800 [153]"$8000 (REALLY $7FFF) DOWNWAIT T0 $7FD7"
- 40810 [141]62000
- 40820 [153]SD$"REMEMBER..THE LOC'NS OF A$(I)"
- 40830 [153]"ARE KEPT IN $0873-$089B"
- 40840 [141]62000
- 40850 [153]SD$"THE STRINGS THEMSELVES='1'-'10'"
- 40860 [153]"ARE STORED IN $7FD7-$7FFF."
- 40870 [141]62000:[141]55010
- 40875 SD[178]14:SR[178]15:CC$[178]"2E 08 35 08":[141]55000
- 40880 [153]SD$"SOWAIT...THE VALUE OF 'I' IS STORED"
- 40890 [153]"IN 7 BYTES FROM $082E TO $0834"
- 40900 [141]62000
- 40910 [153]SD$"2 BYTES FOR IT'S NAME:IWAIT"
- 40920 [153]"5 BYTES FOR IT'S VALUE=1,THEN 2,ETC."
- 40930 [141]62000:[141]55010
- 40940 SD[178]14:SR[178]21:CC$[178]"35 08 9B 08":[141]55000
- 40950 [153]SD$"VALUES OF A(I) GO INTO LOC'NS"
- 40960 [153]"$0835-$0872 (INCLUDING 2 BYTES"
- 40970 [153]"FOR IT'S NAME AWAIT)"
- 40980 [141]62000
- 40990 [153]SD$"THE LAST PART OF THE RANGE"
- 41000 [153]"$0835-$089B IS TO KEEP TRACK OF"
- 41010 [153]"WHERE EACH A$(I) IS STORED IN HI RAM."
- 41020 [141]62000:[141]55010
- 41030 [153]SD$"IF YOU TYPE CLRWAIT AFTER RUNWAITING"
- 41040 [153]"THE PROGRAM,ALL VARIABLES,ARRAYS AND"
- 41050 [153]"STRINGS GET CLEARED."
- 41060 [141]62000
- 41070 [153]SD$"THE ABOVE POINTERS REVERT TO..."
- 41080 [141]62000
- 41090 SD[178]14:SR[178]09:CC$[178]"01 08 2E 08 2E 08 2E 08":[141]55010
- 41100 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55010
- 41110 [153]SD$"JUST THE PROGRAM..FROM $0801"
- 41120 [153]"TO $082E"
- 41130 [141]62000
- 41140 [153]SD$"..AND GUESS WHAT HAPPENS IF YOU"
- 41150 [153]"TYPE NEWWAIT!!"
- 41160 [141]62000
- 41180 SD[178]14:SR[178]09:CC$[178]"01 08 03 08 03 08 03 08":[141]55010
- 41190 SD[178]15:SR[178]09:CC$[178]"00 80 DA 7F 00 80 14 FF":[141]55010
- 41200 [153]SD$"I PUT 00 00 00 INTO $0800-$0802"
- 41210 [153]"..AND THAT'S ALL FOLKS!"
- 41220 [141]62000:[153]"LOAD":MS$[178]"THAT'S ALL":[141]63100:[142]
- 50000 QQ[178]10:AN$[178]"ANSWER="
- 50001 A$(1)[178]"V2":[139][194](32768)[178]9 [167]A$(1)[178]"V4"
- 50004 [129]I[178]2[164]QQ:[135]A$(I):[130]
- 50005 [131] $A000,$0400,$0801,3,N,Y,$033C,Y,Y
- 51000 [129]I[178]1[164]QQ:[135]Q$(I):[130]
- 51001 [131] "LOADWHAT BRAND OF BASIC HAVE I GOTWAIT V2/V4"
- 51002 [131] "LOADWHERE DO THE BASIC ROMS START"
- 51003 [131] "LOADWHERE DOES SCREEN MEMORY START"
- 51004 [131] "LOADWHERE DO BASIC PROGRAMS STARTWAIT"
- 51005 [131] "LOADBASIC PROGRAMS END IN ? ZERO BYTES"
- 51006 [131] "LOADPEEK(1025)+256*PEEK(1026)WAIT=1ST STATEMENT NUMBER(Y/N)"
- 51007 [131] "LOADSTRINGS ARE STORED AT TOP OF RAMWAIT(Y/N)"
- 51008 [131] "LOADTHE CASSETTE BUFFER STARTS WHERE"
- 51009 [131] "LOAD$002B/$002C=POINTER TO START OF BASICWAIT(Y/N)"
- 51010 [131] "LOAD$0037/$0038=POINTER TO TOPOF RAMWAIT(Y/N)"
- 52000 [129]Q[178]1[164]QQ:[135]M$(Q):[130]
- 52001 [131] IF PEEK(32768)=9 THEN IT'S V4.
- 52002 [131] FROM $A000 TO $BFFF.
- 52003 [131] T0 $07FF..JUST BEFORE START OF BASIC.
- 52004 [131] 2048=$0800 HAS '00'
- 52005 [131] THE 'LINK' IS 00 00.
- 52006 [131] ABOVE GIVES 'LINK' TO 2ND STATEMENT
- 52007 [131] THEY'RE STORED FROM $7FFF DOWN
- 52008 [131] DIRTY QUESTION!!
- 52009 [131] 43/44 IN DECIMAL
- 52010 [131] 55/56 IN DECIMAL
- 52999 [142]
- 55000 [153][200](SD$,SD)[200](SR$,SR)""CC$"WAIT":[142]
- 55010 [153][200](SD$,SD)[200](SR$,SR)CC$"WAIT":[142]
- 60000 [143] INITIALIZE
- 60001 BT$[178]"":[129]I[178]1[164]24:BT$[178]BT$[170]"":[130]
- 60002 PT$[178]"ORTANTANTANTANTANTANTANTANTANTAN^CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)(null)CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD/=TANTANTANTANTANTANTANTAN=EXP"
- 60003 PT$[178]PT$[170]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB((null)CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDFN============THEN"
- 60004 PT$[178]PT$[170]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(null)(null)TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB((null)(null)ONONONONCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD"
- 60005 PT$[178]BT$[170]"ONONONONONON"[170]PT$[170]"STOP"
- 60007 ML$[178]""
- 60008 WD[178]40:CRT[178]1024:[153][199](142)
- 60009 W2[178]WD[173]2:W3[178]WD[171]1:W1$[178][202]([196](WD),2):[151]53281,15:[151]53280,12:[153]"STOP"
- 60010 W2$[178][202]([196](W2),2):W3$[178][202]([196](W3),2)
- 60020 [142]
- 62000 [141]63000
- 62001 [153]SD$CL$:[153]CL$:[153]CL$
- 62003 [142]
- 63000 [153]"HIT RETURNWAIT TO CONTINUE";
- 63001 [161]A$:[139]A$[179][177]""[167]63001
- 63002 [161]A$:[139]A$[178]""[167]63002
- 63003 [142]
- 63100 [129]T[178]1[164]5:[153]PT$MS$;
- 63101 [153]PT$" ";
- 63102 [153]PT$MS$;:[130]
- 63103 [153]:[142]
- 63900 SD$[178]"":CL$[178]"WAIT WAIT"
- 63901 SR$[178]""
- 63902 [142]
-